// pages/newarticleDetail/newarticleDetail.js

// 使用云数据库 
const db = wx.cloud.database();

// 引入获取当前时间类
const util = require('util.js');

Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 文章id
        ArticleId:'',

        // 文章详细数据
        Article:[],

        // 点赞标志
        isgood:false,

        // 浏览者信息
        view_user:[
            wx.getStorageSync('openid'),
            wx.getStorageSync('nickname'),
            wx.getStorageSync('avatarUrl')
        ],

        // 待发布的评论内容
        inputText:'',


    },

    //预览图片，放大预览
    preview(event) {
        console.log(event)
        let index = event.currentTarget.dataset.index
        wx.previewImage({
            // 当前显示图片的http链接
            current: this.data.Article[0].picture_list[index], 
            // 需要预览的图片http链接列表
            urls: this.data.Article[0].picture_list
        })
    },

    // 点赞功能函数
    toGood:function(){
        // 判断登录状态
        if(!wx.getStorageSync('login')){
            wx.showModal({
                title: '温馨提示',
                content: '请您先登录',
                success(res) {
                    if (res.confirm){
                        wx.switchTab({
                          url: '/pages/user/user'
                        })
                    }
                }
            })
            return
        }
        // 用户已登录，可进行点赞
        else{
            let that = this
            let temp = "Article[0].goodNum"
            // 处于已点赞状态
            if(that.data.isgood){
                that.setData({
                    isgood:!that.data.isgood,
                    [temp]: that.data.Article[0].goodNum-1
                })
                // 将用户从点赞列表剔除
                for(let i = 0;i< that.data.Article[0].good_list.length;i++){
                    if(wx.getStorageSync('openid') === that.data.Article[0].good_list[i]){
                        that.data.Article[0].good_list.splice(i,1)
                    }
                }
            }
            // 处于未点赞状态
            else{
                that.setData({
                    isgood:!that.data.isgood ,
                    [temp]: that.data.Article[0].goodNum+1
                })
                // console.log(that.data.Article[0].good_list)
                // 将用户添加到点赞列表
                that.data.Article[0].good_list.push(wx.getStorageSync('openid'))
                // console.log(that.data.Article[0].good_list)
            }
            let id = that.data.Article[0]._id
            // console.log(id)
            db.collection('user-publish').doc(id).update({
                data:{
                    goodNum:that.data.Article[0].goodNum,
                    good_list:that.data.Article[0].good_list
                },
                success: res=>{
                    // console.log(res);
                    console.log("更新数据库点赞数据成功")
                },
                fail: err=>{
                    console.log(err)
                }
            })
        }
    },

    // 保存评论内容函数
    inputBindBlur: function(e) {
        this.setData({
            inputText: e.detail.value
        })
    },

    // 发布评论功能函数
    publishComments:function(){
        // 判断登录状态
        if(!wx.getStorageSync('login')){
            wx.showModal({
                title: '温馨提示',
                content: '请您先登录',
                success(res) {
                    if (res.confirm){
                        wx.switchTab({
                        url: '/pages/user/user'
                        })
                    }
                }
            })
            return
        }
        // 用户已登录，可进行评论
        else{
            let that = this
            if(that.data.inputText === ''){
                wx.showToast({
                    title: '内容不能为空哦',
                    icon: 'error',
                    duration: 2000,
                })      
            }
            else{
                let promise = new Promise((reslove,reject)=>{
                    wx.cloud.init();
                    wx.cloud.callFunction({
                        name: 'checkSensitivewords',
                        data: {
                            text: that.data.inputText
                        }
                    }).then((res) =>{
                        console.log(res)
                        if (res.result.code == "200") {
                            //检测通过
                            console.log("检测通过" )
                            reslove()
                        } 
                        else {
                            //执行不通过
                            wx.showToast({
                                title: '包含敏感字哦',
                                icon: 'error',
                                duration: 2000
                            })
                            return
                        }
                    })
                })
                promise.then(res=>{  
                    let promise2 = new Promise((reslove,reject)=>{
                        // 获取当前评论的时间
                        let date = util.formatTime(new Date());
                        // 将当前评论时间和评论内容存入阅读者列表
                        that.data.view_user.push(date)
                        that.data.view_user.push(that.data.inputText)
                        // 将阅读者列表存入文章评论列表(头插)
                        that.data.Article[0].comments_list.unshift(that.data.view_user)
                        // 评论数+1
                        let temp = "Article[0].commentsNum"
                        that.setData({
                            [temp]: that.data.Article[0].commentsNum + 1,
                            inputText:''
                        });
                        // 将评论数据更新到数据库
                        let id = that.data.Article[0]._id
                        console.log(id)
                        db.collection('user-publish').doc(id).update({
                            data:{
                                commentsNum:that.data.Article[0].commentsNum,
                                comments_list:that.data.Article[0].comments_list
                            },
                            success: res=>{
                                // console.log(res);
                                console.log("更新数据库评论数据成功")
                                reslove()
                            },
                            fail: err=>{
                                console.log(err);
                            }
                        })                               
                        // 将存储到阅读者列表里的评论时间和评论内容删除
                        that.data.view_user.pop()
                        that.data.view_user.pop()
                    })
                    promise2.then(res=>{
                        that.loadData()
                    })
                })
            }
        }
    },

    // 分享功能函数
    onShare:function(){
        let that = this
        let promise = new Promise((reslove,reject)=>{
            that.onShareAppMessage()
            reslove()
        })
        promise.then(res=>{ 
            // 分享数+1
            let temp = "Article[0].forwardNum"
            that.setData({
                [temp]: that.data.Article[0].forwardNum + 1
            })
            // 将分享数据更新到数据库
            let id = that.data.Article[0]._id
            console.log(id)
            db.collection('user-publish').doc(id).update({
                data:{
                    forwardNum: that.data.Article[0].forwardNum
                },
                success: res=>{
                    // console.log(res);
                    console.log("更新数据库分享数据成功")
                },
                fail: err=>{
                    console.log(err);
                }
            })  
        })
    },
     
    // 加载文章详细数据函数
    loadData:function(){
        let that = this
        db.collection('user-publish').where({
            _id:that.data.ArticleId,
        }).get().then(res=>{
            // console.log(res);
            that.setData({
                Article:res.data
            })
            // 判断当前用户点赞状态
            for(let i = 0;i<res.data[0].good_list.length;i++){
                console.log("用户id"+wx.getStorageSync('openid'))
                
                if(wx.getStorageSync('openid') === res.data[0].good_list[i]){
                    console.log(res.data[0].good_list[i])
                    that.setData({
                        isgood: true
                    })                       
                }
            }
        }).catch(err=>{
            // console.log(err);
        })               
    },

    //返回上一个页面
    jumpgoback:function(){
        wx.navigateBack({
            url: '/pages/community/community',
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // console.log('文章id为'+options.id)
        this.setData({
            ArticleId:options.id   
        })
        // 加载文章数据
        this.loadData()
        
      
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享 (分享功能实现)
     */
    onShareAppMessage: function (res) {
        // if (res.from === 'button') {
        //     // console.log('页面内容转发')
        // }
        // console.log(res)
        let url = encodeURIComponent('/pages/newarticleDetail/newarticleDetail?id='+this.data.ArticleId);
        return {
            title: '分享了一篇文章',
            path: '/pages/index/index?url='+url,
        }
    }
})